home *** CD-ROM | disk | FTP | other *** search
- /*
- TPSC256&TPSC32K用 外部Shell
-
- ぼかしユ-ティリティ
-
- */
-
- #define EGBSIZE 1536 // EGB用ワ-クサイズ
- #define MOSSIZE 4096 // マウス用ワ-クサイズ
- #define BOOL int // 論理判断の型宣言
- #define TRUE 1 // 真
- #define FALSE 0 // 偽
- #define MENUPAGE 0 // メニュ-ペ-ジ番号
- #define DRAWPAGE 0 // 描画ペ-ジ番号
- #define SCREEN256 12 // 画面モ-ド
- #define SCREEN32K 17 // 画面モ-ド
- #define DRAWW256 640 // 処理画面横サイズ
- #define DRAWW32K 512 // 処理画面横サイズ
- #define DRAWHIDE 480 // 処理画面縦サイズ
-
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <malloc.h>
- #include <math.h>
- #include <egb.h>
- #include <mos.h>
- #include <loader.h> // コプロセス定義ファイル
-
- char EGB_work[EGBSIZE]; // EGBワ-クエリア
- char MOS_work[MOSSIZE]; // マウスワ-クエリア
-
- void resolve(x1,y1,x2,y2)
- int x1,y1,x2,y2;
- {
- int n,worksize,rx1,ry1,rx2,ry2;
- struct {
- unsigned short pn;
- short xy[4][2];
- } para;
- char *work;
-
- if((work=(char *)malloc(512*1024))!=NULL ) {
- para.pn = 4;
- para.xy[0][0] = x1; para.xy[0][1] = y1;
- para.xy[1][0] = x1; para.xy[1][1] = y2;
- para.xy[2][0] = x2; para.xy[2][1] = y2;
- para.xy[3][0] = x2; para.xy[3][1] = y1;
- n = 0;
- rx1 = x1; ry1 = y1;
- rx2 = x2; ry2 = y2;
- EGB_region(EGB_work,&n,&worksize,&rx1,&ry1,&rx2,&ry2,(char*)¶);
-
- EGB_resolve(EGB_work,work);
- free(work);
- }
- }
-
- main()
- {
- ADDRESS temp;
- int i,x,y;
- int page[2];
-
- pcl_get_dta(&temp);
-
- /* 画面・マウスの初期化 */
- EGB_getResolution(&page[0], &page[1]);
- if( page[0] == SCREEN256 ||
- page[0] == SCREEN32K ) {
-
- EGB_resolution(EGB_work,DRAWPAGE,page[0]|0x40); // Page0 Init
- EGB_displayPage(EGB_work,0,1); // 1page view
- MOS_start(MOS_work,MOSSIZE); // マウス初期化
- MOS_resolution(DRAWPAGE,page[0]);
-
- EGB_writePage(EGB_work,DRAWPAGE); // 描画ペ-ジを指定
- EGB_paintMode(EGB_work,0x22); // ペイントモ-ドを指定
- if( page[0] == SCREEN256 ) {
- EGB_color(EGB_work,0,255); // ドットの色を指定
- } else {
- EGB_color(EGB_work,0,0x7fff); // ドットの色を指定
- }
- EGB_writeMode(EGB_work,0);
-
- /* 処理開始 */
- if( page[0] == SCREEN256 ) {
- resolve(0,0,DRAWW256-1,DRAWHIDE-1);
- } else {
- resolve(0,0,DRAWW32K-1,DRAWHIDE-1);
- }
-
- /* 子プロセスの終了処理 */
- MOS_end();
- }
-
- pcl_exit(0);
- return (0);
- }
-